热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python语法上的区别及注意事项

本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。


在上一篇文章中,简单的给大家介绍了一下Pyhton2x 和 Python3x的发展史,今天大家总结一下语法上的区别,Python2.7兼容2x的语法和3x的语法



  • 脚本的解释程序

  • print "Hello Python" 变成了 print("Hello Python")

  • 在Python2x中1/2=0,在Python3x中1/2=0.5

  • raw_input 没了,变成了 input

  • class Foo:写法不能用了,只能class Foo(object)


脚本的解释程序


在linux的一些bash的脚本,需在开头一行指定脚本的解释程序 例如在Shell的脚本解释器


#!/bin/bash

在Python中也是一样的道理,安装不同版本的Python,会安装在不同的目录一下,所以也需要告诉Python解释器,用什么版本的去执行


#!/usr/bin python
#!/usr/bin/env python3

第一种方式告诉Python解释器去寻找/usr/bin下python 而第二种方式从系统的PATH目录中查找


print "Hello Python" 变成了 print("Hello Python")


在Python2x 输出语句是


print "Hello Python";
print "left is sort you use Python";

在Python3中输出语句变更为


print("Hello Python");
print("left is sort you use Python");

1/2等于0.5?


在Python2x 中 1/2 的结果是0





而在Python3x 中 1/2的结果是 0.5





raw_input 没了,变成了 input








class Foo:写法不能用了,只能class Foo(object)


这个在后续文章中在给大家介绍


注释


Python中单行注释以#开头


#这是单行注释

多行注释用三个单引号(''')或者三个双引号(""")将注释括起来。


'''
这是多行注释一
'''
"""
这是多行注释二
"""

缩进


Python 不像 Java,在Java中用大括号和分号这样明显的代码块控制符号


Java代码


int x =3;
if(x==3){
System.out.println("x==3");
}else{
System.out.println("x!=3");
}

但是在Python中一切的代码块都是通过缩进来区分,缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。


Python代码


x=3;
if x==3 :
print("x==3\n");
else :
print("x!=3\n");

与用户交互(IO)


输入是Input,输出是Output,因此,我们把输入输出统称为Input/Output,或者简写为IO。



  1. print()


用print()括号中加上字符串,向屏幕中输出指定字符串


print ("my name is jack");

print()函数可以接受多个字符串,用逗号隔开


print("my name is jack","l love python")


  1. input() 和 input("name")


现在你会输出字符串了,那么如果想从键盘输入字符串怎么办?Python提供了input(),可以让用户输入字符串,并存在一个变量里


>>> name = input();
jack

当输入完jack之后,字符串jack会存放在name里,用print可以输出name


print (name);

但是运行程序的时候,没有任何提示告诉用户,这样显得不是很友好,所以可以在input()括号中加入字符串来提示用户


>>> name = input("please tell me you name: ");
please tell me you name: jack


  1. 字符串格式化输出


在Python中,采用的格式化方式和C语言是一致的,用%实现,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略


常见的占位符



























占位符 说明
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

name = "jack";
print("you name is name %s" % (name));
language = "python"
print("you name is name %s , i love %s" % (name,language));

基本数据类型


在Python中,能够直接处理的数据类型整数、浮点数、字符串、布尔值、空值


整数


Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647。


在Python中整除除法永远是精确的,计算结果是浮点数


num = 10/2;
print(num);




还有一种除法是//,称为地板除,两个整数的除法仍然是整数


>>> num = 10//2;
>>> print(num);




还有另外一种运算符 % 余数运算,可以得到两个整数相除的余数


>>> num = 10%3;
>>> print(num);




浮点数


Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。


运算符 /、//、%的使用方法和整数一样,这里不在举例子,有兴趣的可以去试一下


字符串


字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等 如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如


print('he\'s so cool');

如果字符串里面有很多字符都需要转义,Python还允许用r''表示''内部的字符串默认不转义


num = r'I\'m jack ,she\'s beautiful, i Love her';
print(num);




如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容


print('''
I am jack
she is beautiful
i love her
''')

这里只做简单的介绍,后续会详细介绍字符串


布尔值


用True和False标示布尔值,可以进行and、or和not运算。 注意:True和False,首字母是大写


bool = True and True;
print(bool);
bool = True or False;
print(bool);
bool = False or True;
print(bool);

空值


空值是Python里一个特殊的值,用None表示


变量


在Python中变量不仅可以是数字,还可以是任意数据类型,这种变量本身类型不固定的语言称之为动态语言


在Java中定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错,这种变量本身类型固定的语言称之为静态语言


下面是java代码,运行会报错


int age = 20;
age = "jack";

下面是Python的代码


age = 20;
age = "jack";

对比一下就知道了,静态语言比动态语言更灵活


下面重点来了,变量在内存中引用的问题,例如下面的代码输出结果是什么呢


x= "Python";
y= x;
x = "Java";
print(y)

上面代码的输出结果是long,为什么会这样呢?我们来一行一行代码分析一下,到底发生了什么事


执行 x= "Python",创建了字符串'Python'和变量x,并把x指向'Python'





执行 y= x,创建了变量y,并把y指向x指向的字符串'Python'





执行 x = "Java",创建了字符串'Java',并把x的指向改为'Java',但y并没有更改







推荐阅读
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • OO第一单元自白:简单多项式导函数的设计与bug分析
    本文介绍了作者在学习OO的第一次作业中所遇到的问题及其解决方案。作者通过建立Multinomial和Monomial两个类来实现多项式和单项式,并通过append方法将单项式组合为多项式,并在此过程中合并同类项。作者还介绍了单项式和多项式的求导方法,并解释了如何利用正则表达式提取各个单项式并进行求导。同时,作者还对自己在输入合法性判断上的不足进行了bug分析,指出了自己在处理指数情况时出现的问题,并总结了被hack的原因。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
author-avatar
手机用户2702933712
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有